// import CryptoJS from 'crypto-js.min.js';

// 解密
let aesKey = localStorage.getItem('aesKey')
const KEY = CryptoJS.enc.Utf8.parse(aesKey || 'seashineWeb2.0.0');//  密钥        长度必须为16位  aesKey ||'seashineWeb2.0.0'
const IV = CryptoJS.enc.Utf8.parse("Gl_Yx_Cj_!@#$%^&");     //  初始向量    长度随意
// AES加密 ：字符串 key iv  返回base64
function Encrypt(str, keyStr, ivStr) {
    let key = KEY
    let iv = IV

    if (keyStr && ivStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
    }

    let srcs = CryptoJS.enc.Utf8.parse(str);
    var encrypt = CryptoJS.AES.encrypt(srcs, key, {//参数：要进行加密的字符串、秘钥、{初始向量}
        iv: iv,
        mode: CryptoJS.mode.CBC,            //这里可以选择AES加密的模式
        padding: CryptoJS.pad.Pkcs7
    });
    return CryptoJS.enc.Base64.stringify(encrypt.ciphertext);
}

// AES 解密 ：字符串 key iv  返回base64
function Decrypt(str, keyStr, ivStr) {
    let key = KEY
    let iv = IV

    if (keyStr && ivStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
    }

    let base64 = CryptoJS.enc.Base64.parse(str);
    let src = CryptoJS.enc.Base64.stringify(base64);

    var decrypt = CryptoJS.AES.decrypt(src, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,            //这里可以选择AES解密的模式
        padding: CryptoJS.pad.Pkcs7
    });

    var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
}